package ${packageName}.service.Impl;

import com.core.family.admin.mapper.${poName}Mapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.io.Serializable;
import ${packageName}.mapper.${poName}Mapper;
import ${packageName}.domain.${poName};
import ${packageName}.service.${poName}Service;



/**
 * @author honglei
 * @version 1.0
 * @time: ${.now}
 * @Description 服务实现层 ${comments}
 */
@Slf4j
@Service
public class ${poName}ServiceImpl  implements ${poName}Service{
@Resource
private ${poName}Mapper mapper;

@Override
public ${poName} findById(Serializable id) {
return null;
}
@Override
public List<${poName}> findList(Map map) {
 // todo 数据转换
 return mapper.queryList(map);
 }

 @Override
 public Object findPage(Map map) {
 /*


 PageHelper.startPage(1, 20);
 //startPage后紧跟的这个查询就是分页查询
 List<${poName}> list = mapper.queryList(map);
  PageInfo<${poName}> pageInfo = new PageInfo<>(list);


   */

   return null;
   }
   /***
   * 批量插入
   * @param list
   * @param mType 重复数据处理模式 0 不处理，1忽略，2覆盖 3 抛异常
   * @return
   * @throws Exception
   */
   @Override
   public int saveBatch(Collection<${poName}> list, int mType) throws Exception {
    if (mType == 0) {
    return mapper.insertBatch(list);
    }
    if (mType == 1) {
    //todo 方式一 遍历数据查库，如存在，则忽略
    //todo 方式二 存在唯一索引 insert ingore
    return mapper.insertBatch(list);
    }
    if (mType == 2) {
    //todo 遍历数据 直接更新表，如成功，则剔除插入
    //todo 方式二 存在唯一索引 replace
    return mapper.insertBatch(list);
    }
    if (mType == 3) {
    //todo 遍历数据查库，如存在，则抛异常
    //todo 方式二 存在唯一索引 直接插入
    return mapper.insertBatch(list);
    }

    return 0;
    }


    @Override
    public int editBatch(Collection<${poName}> list) {
     return mapper.updateBatch(list);
     }

     @Override
     public int editById(${poName} entity) {
     return mapper.updateById(entity);
     }

     @Override
     public int removeById(Serializable id, int delType) {

     if (delType == 1) {
     //tood 逻辑删除
     // return mapper.updateById(entity);
     }

     return mapper.deleteById(id);
     }


}

